package com.xoa.service.rms;


import com.xoa.model.enclosure.Attachment;
import com.xoa.model.rms.RmsFileWithBLOBs;
import com.xoa.model.rms.RmsRollWithBLOBs;
import com.xoa.model.users.Users;
import com.xoa.util.ToJson;
import com.xoa.util.page.PageParams;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;

public interface RmsFileService {

    /**
     * 作者: 张航宁
     * 日期: 2017/12/25
     * 说明: 保存接口
     */
    public ToJson<RmsFileWithBLOBs> save(RmsFileWithBLOBs rmsFileWithBLOBs, HttpServletRequest request);

    /**
     * 作者: 张航宁
     * 日期: 2017/12/25
     * 说明: 更新接口
     */
    public ToJson<RmsFileWithBLOBs> update(RmsFileWithBLOBs rmsFileWithBLOBs, HttpServletRequest request);

    /**
     * 作者: 张航宁
     * 日期: 2017/12/25
     * 说明: 销毁接口
     */
    public ToJson<RmsFileWithBLOBs> destroy(String fileIds, HttpServletRequest request);

    /**
     * 作者: 张航宁
     * 日期: 2017/12/25
     * 说明: 查询接口
     */
    public ToJson<RmsFileWithBLOBs> query(RmsFileWithBLOBs rmsFileWithBLOBs, PageParams pageParams);

    /**
     * 作者: 张航宁
     * 日期: 2017/12/26
     * 说明: 根据id查询
     */
    public ToJson<RmsFileWithBLOBs> selectById(Integer fileId, HttpServletRequest request);

    /**
     * 作者: 张航宁
     * 日期: 2017/12/28
     * 说明: 导入接口
     */
    public ToJson<RmsFileWithBLOBs> importFile(HttpServletRequest request, HttpServletResponse response, MultipartFile file);

    /**
     * 作者: 张航宁
     * 日期: 2018/1/2
     * 说明: 删除接口
     */
    public ToJson<RmsFileWithBLOBs> deleteFiles(String fileIds);

    /**
     * 作者: 张航宁
     * 日期: 2018/1/2
     * 说明: 还原文件接口 【销毁后还原】
     */
    public ToJson<RmsFileWithBLOBs> restore(String fileIds);

    /**
     * 作者: 张航宁
     * 日期: 2018/1/3
     * 说明: 导出接口
     */
    public ToJson<RmsFileWithBLOBs> export(String fileIds, HttpServletRequest request, HttpServletResponse response);

    /**
     * 作者: 张航宁
     * 日期: 2018/1/3
     * 说明: 批量移卷接口
     */
    public ToJson<RmsFileWithBLOBs> updateRollBath(String fileIds, Integer rollId);

    /**
     * 作者: 张航宁
     * 日期: 2018/1/22
     * 说明: 生成工作流公文等流程表单HTML文件 用于归档
     */
    public ToJson<Attachment> createFormHtml(String content,String module, HttpServletResponse response, HttpServletRequest request, String typeFlag);

    /**
     * @作者: 张航宁
     * @时间: 2019/8/8
     * @说明: 获取流程中的来文单位 文号 文件标题 案卷数据
     */
    ToJson<RmsFileWithBLOBs> getFlowData(Integer runId);

    public ToJson viewDetails(Users user,Integer runId);


    ToJson<RmsFileWithBLOBs> leaderQuery(RmsFileWithBLOBs rmsFileWithBLOBs, String room, String roll, String sendUnit, String rollName, String file, PageParams pageParams);
}
